A database typically includes one or more database tables for storing data values. To access the data in the database, an application typically issues a database query to a Database Management System (DBMS) that retrieves the data from the database. The DBMS may be structured to support different types of operations from the requesting application server to retrieve, add, modify and/or delete data being stored in the database. The application then interprets the data retrieved from the data server and transforms the data into a format that can be processed by the application.
Typically, the application is written using a high level programming language that provides a high level of abstraction suited for developing business applications, such as developing custom reports and interfaces. The data server, on the other hand, is typically structured to support operations that are programmed using a query language, such as Structured Query Language (“SQL”), to interpret what, where and how data is to be stored and manipulated.
The application may perform various complex calculations based on data retrieved from the data server. In some cases, the data server is optimized to accelerate database operations (e.g., SELECT queries). However, due to the large volume of data that may be returned from the data server to the application and vice versa, the overall performance is still limited by the data transfer time. For example, even if the data server is optimized to accelerate SELECT queries by 100 times, the overall performance may be improved by only 2 to 3 times (or worse) due to delays caused by large volume data transfer.
Currently, there is no unified methodology to handle database function calls to achieve optimized performance. Different developers may use different approaches to call database functions and retrieve data for use by the application. In a bad case scenario, the shared connection between the application and data server is reset while the data in the temporary database table is still needed for processing by the application.
Therefore, there is a need for an improved framework that addresses the above-mentioned challenges.